В программировании и IT что-то меняется каждый день, и если немного отстать от повестки, можно надолго остаться в числе догоняющих. То, что классно работало два года назад, сегодня может оказаться устаревшей никому не нужной технологией, поэтому побеждает тот, кто умеет схватывать на лету и быстро обучаться. О том, как оставаться в теме в стремительно развивающемся мире IT-технологий, специально для «Цеха» написал Александр Трегер, руководитель службы разработки образовательного сервиса Яндекс.Практикум.
Каждому специалисту важно знать, что происходит в его отрасли, но программисту это жизненно необходимо. IT — одна из самых динамичных отраслей, здесь постоянно появляется что-то новое. Например, о мобильном разработчике 15 лет назад еще ничего не слышали, а сегодня это одна из самых высокооплачиваемых и востребованных специальностей. То же касается и технологий: когда Node.js только зарождался, очень непривычно было видеть JavaScript на сервере, а сейчас это уже стандарт, хотя прошло очень мало времени.
Когда разработчик знает, что происходит в его сфере, ему удается делать свою работу эффективнее за счет технологических новинок, он становится более конкурентоспособным, изобретает меньше «велосипедов» и проектирует архитектуру своих систем так, чтобы оставался задел на дальнейший рост и развитие. Быть в теме и постоянно развиваться — это суперважно, это открывает множество дверей. Помните, как европейцы колонизировали половину мира только благодаря тому, что использовали передовые технологии?
Уследить сразу за всем непросто, но есть популярные ресурсы для программистов, которые помогают не выпадать из контекста: например, Habr или VC. Хорошая практика — подписаться на рассылки, блоги и телеграм-каналы тех инструментов, которыми ты постоянно пользуешься. Неплохо также завести привычку начинать день с пролистывания тематических ресурсов, как делают многие успешные люди, чтобы быть в курсе актуальной повестки дня.
А вот несколько рекомендаций, которые помогают мне самому оставаться в теме и быть в курсе технологических новинок.
- Ставить новые цели и критически оценивать существующие решения. Если ты однажды нашел работающий способ решения той или иной задачи, и применяешь его снова и снова, это приводит к стагнации. Каждую задачу можно решить быстрее и лучше, и если ты постоянно находишься в поиске ответов, это неплохо расширяет кругозор и позволяет повышать свой профессиональный уровень. Программирование — мое хобби со школьных лет, при этом я не заканчивал никаких курсов (их так таковых и не было тогда), а для обучения использовал как раз такой метод: ставил сам себе задачи, а потом находил способы их решения.
- Делать собственные проекты. В работе важно всегда находить время на то, чтобы «прощупать» на практике новую технологию. В крупных IT-компаниях сотруднику выделяют время на то, чтобы он мог заняться чем-то еще помимо текущих проектов. Основная ценность этой практики — возможность потрогать технологию руками. Это совсем не то же самое, что послушать доклад или прочитать статью.
- Читать описания вакансий. Это помогает оценить, что происходит на рынке: какие технологии преобладают, какие подходы используются, какие кадры ценятся. Если какая-то технология «выстреливает», и все начинают ее внедрять, а компании активно хантят таких специалистов, то на это стоит обратить внимание.
- Ходить на конференции или смотреть их в записи. Конференция — это неплохой «срез» актуальных изменений в отрасли. При этом, если ты фронтендер, это не значит, что нужно ходить только на фронтендерские мероприятия: иногда бывает полезно взглянуть на свою специальность под другим углом. Важно не зацикливаться на одной теме, а внимательно смотреть по сторонам.
- Применять реверс-инжиниринг. Это работает не всегда, но для веб-разработчика может быть очень кстати. Смотрите исходный код сайта, чтобы понять, как он сделан и какие технологии там «под капотом». Иногда такой подход позволяет найти полезные баги. Например, однажды я заказывал пироги на сайте, где дату доставки через форму можно было установить только на несколько дней вперед. Там не было серверной валидации, я немножко подправил код формы и оформил себе доставку на следующий день. Но учиться можно не только на багах. Если вам нравится, как что-то реализовано у коллег или конкурентов, поищите, как это сделано: возможно, разработчики рассказывали об этом на конференции или в статье.
- Читать исходники популярных опенсорс-проектов. В таких проектах контрибьютят очень много разработчиков, здесь происходит накопление опыта классных специалистов, подборка лучших практик. Опенсорсят, к примеру, Яндекс и Гугл, и из этого источника можно почерпнуть знания и технологии для своего проекта и вывести его на новый уровень.
- Общаться с коллегами. У каждого специалиста есть свой опыт и критический взгляд, и взаимный обмен знаниями помогает круто прокачиваться. Спрашивайте коллег, как они реализовали то или иное решение, устраивайте митапы внутри команды, чтобы обсудить идеи и гипотезы. Выясните, что думают ваши коллеги по поводу решения, которое собираетесь применить вы: иногда простой разговор может натолкнуть на классную свежую идею.
Если говорить об источниках знаний для программистов, то у каждого тут будут свои подборки, в зависимости от профиля деятельности, уровня знаний и круга интересов. Вот несколько полезных ресурсов, которые регулярно мониторю я сам:
- Мои подписки на Habr можно посмотреть тут
- Каналы в Telegram: Late Night Teamlead Show, TechLead Good Reads
- Facebook: Управление и разработка больших IT проектов
И напоследок. Чтобы оставаться в курсе ключевых событий в отрасли, не нужно каким-то особенным образом планировать свое время или выделять на обучение строго несколько часов в день. Если вы выстроите свой рабочий процесс так, чтобы постоянно учиться и исследовать новые горизонты, ставить себе сложные задачи и находить для них решения, то будете очень органично и естественно поспевать за всеми изменениями.